#include <iostream>
#include <thread>
#include <future>

int Add(int num1, int num2)
{
    std::cout << "加法！\n";
    return num1 + num2;
}

int main()
{
    // std::launch::async 内部会创建工作线程，异步的完成任务（无需使用get即调用Add）
    //std::future<int> result = std::async(std::launch::async, Add, 12, 23);
    // 执行get获取异步结果时才执行异步任务（Add）
    std::future<int> result = std::async(std::launch::deferred, Add, 12, 23);
    
    int sum = result.get();
    std::cout << sum << std::endl;

    return 0;
}